package com.zust.zst.chooselesson.service;

import com.zust.zst.common.dto.chooselesson.AddCultivationPlanDTO;
import com.zust.zst.common.dto.chooselesson.ColGraMajDTO;
import com.zust.zst.common.vo.chooselesson.CultivationPlanVO;

import java.util.List;

/**
 * 培养计划服务层接口
 *
 * @author Gavin Zhang
 * @date 2022/12/7 16:20
 */
public interface CultivationSystemService {

    /**
     * 通过学院名获取其历史学年
     *
     * @param college 学院名
     * @return 历史学年列表
     */
    List<Integer> getAllGradeFromCollege(String college);

    /**
     * 获取对应二级学院及特定年级的所有专业
     *
     * @param college 二级学院
     * @param grade   年级
     * @return 对应二级学院及特定年级的所有专业
     */
    List<String> getMajorByCollegeAndGrade(String college, Integer grade);

    /**
     * 获取某专业所有培养计划课程的条数
     *
     * @param colGraMajDTO 学院、年级、专业
     * @return 某专业所有培养计划课程的条数
     */
    Integer getTotalByCultivationPlan(ColGraMajDTO colGraMajDTO);

    /**
     * 获取某专业所有培养计划课程
     *
     * @param colGraMajDTO 学院、年级、专业
     * @return 某专业所有培养计划课程
     */
    List<CultivationPlanVO> getCultivationByCollegeAndGradeAndMajor(ColGraMajDTO colGraMajDTO);

    /**
     * 添加培养计划课程
     * @param dto 培养计划课程
     * @return 插入结果
     */
    int addCultivationPlanCourse(AddCultivationPlanDTO dto);
}
